import json
import os
import uids
'''
先读取data中的uid的键值对，再识别userdata中的所有uid文件夹中的uid账号是否存在
最好是可以建立自己的数据结构，来保存爬取的数据，方便后续更新处理
'''


#存放用户数据的小地址,存放所有用户的 键值对数据
file_path_user_data = '.\\userdata'

#先检查所有用户的键值对
def data_file():
    #先建文件夹
    try:
        os.mkdir(".\\{}".format(file_path_user_data))
    except Exception as err:
        print('√ data文件夹建立 00x00')

    #再看键值对在不在，在的话读，不在的话建一个
    try:
        with open('{}\\{}.json'.format(file_path_user_data,'uid'), 'r') as file:

            try:
                data = json.load(file)
                #能到这一步，说明存在数据，直接开始读取遍历uid数据
                userdata_file()

            except Exception as err:
                #到这里说明用户无数据，引导用户开始添加uid
                print('暂无用户数据，等待...')
                uids.add_uid()
                userdata_file()

    except FileNotFoundError:
        print('× 未发现uid.json文件 00x01')
        file_path_user = os.path.join(file_path_user_data, "uid.json")
        try:
            with open(file_path_user, 'x') as file:
                pass
            print('√文件 00x01')
        except Exception as err:
            pass

def userdata_file():
    with open(os.path.join(file_path_user_data, 'uid.json'), 'r') as file:
        try:
            users = json.load(file)
            for user in users.values():
                try:
                    user_folder_path = os.path.join(file_path_user_data, user)
                    user_file_path = os.path.join(user_folder_path, f"{user}.json")
                    if not os.path.isdir(user_folder_path):
                        # 检查用户文件夹是否存在
                        print(f'× 用户文件夹缺失 {user_folder_path}')
                        os.makedirs(user_folder_path)
                        print(f'√ 创建用户文件夹 {user_folder_path}')
                    if not os.path.isfile(user_file_path):
                        # 检查用户 JSON 文件是否存在
                        print(f'× 用户数据缺失 {user_file_path}')
                        with open(user_file_path, 'w') as new_file:
                            # 在缺失文件位置创建空文件
                            new_file.write("{}")
                        print(f'√ 创建用户数据文件 {user_file_path}')
                except Exception as err:
                    print('处理用户数据时出错:', err)
        except Exception as err:
            print('无法加载 uid.json:', err)
            return


